package edu.ustb.efws.base.mapper;

import edu.ustb.efws.base.domain.Position;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 风险点设置数据操作
 *
 * @author TS Group
 */
@Mapper
public interface PositionMapper {

    /**
     * 插入风险点设置
     *
     * @param t {@link Position}
     * @return 插入条数
     */
    int insert(Position t);

    /**
     * 修改风险点设置
     *
     * @param t {@link Position}
     * @return 修改条数
     */
    int update(Position t);

    /**
     * 删除风险点设置
     *
     * @param id 编号
     * @return 删除条数
     */
    int delete(@Param("id") int id);

    /**
     * 查询风险点
     *
     * @param id 风险点编号
     * @return {@link Position}
     */
    Position findOne(@Param("id") int id);

    /**
     * 查询所以风险点
     *
     * @return 风险点集合
     */
    List<Position> findAll();

    /**
     * 查询测量点
     *
     * @param iptId
     * @param thoId
     * @return 数量
     */
    int countPoint(@Param("iptId")int iptId, @Param("thoId")int thoId);

    /**
     * 通过输出位置和输出点位置查询输出点设置
     *
     * @param ids 编号集合
     * @return {@link Position}集合
     */
    List<Position> findIn(@Param("ids") List<Integer> ids);

    /**
     * 查询记录数
     *
     * @param outNumber 输出点编号
     * @param area 输出位置
     * @param position 输出点位置
     * @return 记录数
     */
    Long count(@Param("outNumber") String outNumber, @Param("area") String area, @Param("position")String position);

    /**
     * 查询
     *
     * @param outNumber 输出点编号
     * @param area 输出位置
     * @param position 输出点位置
     * @param offset 偏移量
     * @param limit 查询记录数
     * @return 集合
     */
    List<Position> find(@Param("outNumber")String outNumber, @Param("area")String area, @Param("position")String position,
                        @Param("offset")int offset, @Param("limit") int limit);
}